package jmine.tec.database.query.domain;

import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.Clob;

import jmine.tec.test.Builder;
import bancosys.tec.utils.date.Date;
import bancosys.tec.utils.date.Time;
import bancosys.tec.utils.date.Timestamp;

/**
 * Construtor para a entidade ManyTypes.
 * 
 * @author lundberg
 */
public class ManyTypesBuilder implements Builder<ManyTypes> {

    private ManyTypes entity = new ManyTypes();

    /**
     * {@inheritDoc}
     */
    public ManyTypes build() {
        return this.entity;
    }

    public ManyTypesBuilder withBooleanField(Boolean booleanField) {
        this.entity.setBooleanField(booleanField);
        return this;
    }

    public ManyTypesBuilder withByteField(Byte byteField) {
        this.entity.setByteField(byteField);
        return this;
    }

    public ManyTypesBuilder withShortField(Short shortField) {
        this.entity.setShortField(shortField);
        return this;
    }

    public ManyTypesBuilder withIntegerField(Integer integerField) {
        this.entity.setIntegerField(integerField);
        return this;
    }

    public ManyTypesBuilder withLongField(Long longField) {
        this.entity.setLongField(longField);
        return this;
    }

    public ManyTypesBuilder withFloatField(Float floatField) {
        this.entity.setFloatField(floatField);
        return this;
    }

    public ManyTypesBuilder withDoubleField(Double doubleField) {
        this.entity.setDoubleField(doubleField);
        return this;
    }

    public ManyTypesBuilder withBigDecimalField(BigDecimal bigDecimalField) {
        this.entity.setBigDecimalField(bigDecimalField);
        return this;
    }

    public ManyTypesBuilder withCharField(Character charField) {
        this.entity.setCharField(charField);
        return this;
    }

    public ManyTypesBuilder withStringField(String stringField) {
        this.entity.setStringField(stringField);
        return this;
    }

    public ManyTypesBuilder withDateField(Date dateField) {
        this.entity.setDateField(dateField);
        return this;
    }

    public ManyTypesBuilder withTimeField(Time timeField) {
        this.entity.setTimeField(timeField);
        return this;
    }

    public ManyTypesBuilder withTimestampField(Timestamp timestampField) {
        this.entity.setTimestampField(timestampField);
        return this;
    }

    public ManyTypesBuilder withBlobField(Blob blobField) {
        this.entity.setBlobField(blobField);
        return this;
    }

    public ManyTypesBuilder withClobField(Clob clobField) {
        this.entity.setClobField(clobField);
        return this;
    }
}
